Spread spectrum systems, wherein signals are encoded with pseudorandom noise codes, transmitted, and then decoded upon reception, are used in a variety of applications. In particular, the Global Positioning System (GPS) is a spread spectrum radio navigation system comprised of a constellation of earth-orbiting satellites that transmit information bearing signals from which a GPS receiver may derive accurate navigation and timing data. Each satellite signal is encoded with a distinct pseudorandom noise (PRN) code which must be decoded or "despread" by the GPS receiver to extract the useful information from the signal.
A GPS receiver typically contains multiple correlator channels for despreading the signals of multiple satellites. Each channel is functionally identical and all of the channels are controlled by a microprocessor. A GPS correlator channel comprises a code generator for generating a PRN code, a digitally controlled oscillator (code DCO) for controlling the timing characteristics of the code generator, code mixers for mixing the incoming signal with the PRN code and accumulators for integrating the output of the code mixers. The duration of the PRN code sequence, called the epoch, and the rate at which the PRN code bits are generated, called the chipping rate, are controlled by the code DCO. In particular, the epoch of the C/A code, which is a type of PRN code typically used in GPS receivers, is one millisecond, and the chipping rate is 1.023 MHz. Thus, the duration of a code bit is about 0.9775 microseconds.
The correlation process comprises mixing the incoming encoded signal with the code generated in the correlator channel by the code generator and accumulating the result over the duration of an epoch. At the end of the epoch, the accumulation is dumped to output the result. This accumulate and dump process occurs over each epoch. Epoch accumulations are then combined to form data bit detection intervals, enabling the data stream to be recovered by a data detector.
The code generator is capable of generating any one of a series of sequences which have the property that the correlation of any two sequences that are not the same produces a very low correlation value, whereas the correlation of any two identical sequences produces a correlation value proportional to the time delay between the two identical sequences. Thus, the correlation of two identical sequences is a relatively high value when there is no time delay between them. The correlation value falls to a relatively low value rapidly as the time delay between the identical sequences increases. In contrast, correlation of two different code sequences is always a relatively low value.
If a sequence impressed on an information bearing signal is the same sequence generated by the code generator, and if the time delay between the sequences is very small, the output signal from the correlator at the end of each epoch will be nearly equal to the average value of the information bearing signal during the epoch in which the correlation occurred. If this condition is maintained, the correlation process will reconstruct the signal information and the PRN code will be removed from the signal. Conversely, if the sequence impressed on the incoming signal is not the same sequence generated by the code generator, or if a significant delay between the sequences exists, the output from the correlator will be nearly zero and the signal information will be lost.
The purpose of the correlation process, which is called de-spreading, is to remove the PRN code from the incoming signal and to differentiate between the signal from one satellite and the signals from all the other satellites. Each channel of the GPS receiver used to receive satellite information receives a composite signal comprised of the transmissions from many satellites. However, each satellite transmits a different PRN code. By correlating the composite signal with a code sequence that replicates the code sequence transmitted by a particular satellite, a correlator channel is able to select the signal of one satellite and reject all others. Since each channel contains its own code generator and code DCO, each channel can process the signal from a different satellite.
Therefore, the code generator of each correlator channel used to despread a satellite signal is commanded by the GPS microprocessor to generate the particular code sequence corresponding to the satellite to be tracked by that channel. The code DCO controls the chipping rate so as to cause the generated code to have the same frequency as the received code.
As previously noted, when there is no time delay between the received code and an identical code generated by the code generator, the output of the correlation process is a peak value. If, however, a change in frequency or phase of the received signal occurs--which may be caused by receiver motion, clock offset, or satellite motion--the correlation output will decrease to a smaller value. When this occurs, the code DCO must be adjusted to maintain synchronization between the received code and the generated code. This can be accomplished by means of an Early/Late Correlation tracking loop, in which the correlation peak is gated by generating early and late correlation signals. This is done by correlating the received code with an identical code that is slightly delayed in time with respect to the received code, (a late code), to create a late correlation, and also correlating the received code with an identical code that is slightly advanced in time with respect to the received code, (an early code), to create an early correlation. The delay between the early and late codes is referred to as the correlation spacing or gate width.
The early and late correlations are processed by a discriminator that develops a tracking error signal indicative of the position of the received code phase with respect to the code phase of the early and late code generated by the correlator. A commonly used discriminator function from which the tracking error signal may be derived is the difference between the squares of the complex magnitudes of the early correlation and late correlation. The tracking error signal may in turn be used to determine the adjustment to be made to maintain the received code in the gate. The discriminator function is typically implemented in the GPS receiver microprocessor operating under the directions of software, which adjusts the code DCO in response to the tracking error signal.
Thus, if the received code begins to advance in phase, the early correlation power level will increase and the late correlation power level will decrease, indicating that the phase of the generated code, as controlled by the code DCO, must be advanced. Conversely, if the received code begins to retard in phase, the late correlation power level will rise and the early correlation power level will decrease, indicating that the phase of the generated code must be retarded.
Tracking a desired signal by gating it is well known in the art and has been used for years in radar acquisition and tracking systems.
The current method used in GPS receivers for satellite signal tracking is to generate early and late PRN codes, and to correlate these separately with the received signal. Another commonly used tracking method is implemented by correlating the received signal with a prompt code and with a code formed by subtracting the late PRN code from the early PRN code (Early Minus Late tracking). In either case, the correlator spacing (gate width) is controlled by circuitry within the correlator channel. Unfortunately, commercially available GPS correlator channels do not provide external control of the correlator spacing which is a significant disadvantage to designers of GPS instrumentation. A typical commercially available GPS correlator provides a fixed correlator spacing equal to one code chip which cannot be adjusted. For example, the GEC Plessey GP2021 twelve channel correlator provides a fixed correlator spacing of one chip between early and late codes or of one-half chip between prompt and late codes or prompt and early codes. For more accurate tracking, a much narrower spacing is desired, as such reduces the range of ambiguity in the determination of the integer cycle component of the phase of the received signal. In a differential GPS receiver, this ambiguity may significantly degrade the precision of the navigation solution. Therefore, a need exists for a method and apparatus for achieving narrow correlator spacing using commercially available correlator devices. Moreover, existing multi-channel correlator devices provide early and late codes for each channel, resulting in unnecessary duplication of circuitry, which can be avoided by the method of the present invention herein disclosed.